package v1

import (
	"donkey-admin/internal/model/entity"
	"github.com/gogf/gf/v2/frame/g"
)

type RoleGetAllReq struct {
	g.Meta   `path:"/Role.Get" tags:"role" method:"get" summary:"获取所有角色"`
	PageSize int `json:"pageSize" v:"required|between:1,50#pageSize为必填参数|pageSize应大于等于1且小于等于50"`
	Page     int `json:"page" v:"required|min:0#page为必填参数|page应大于等于0"`
}

type RoleGetAllRes struct {
	PageSize int              `json:"pageSize"`
	Page     int              `json:"page"`
	Total    int              `json:"total"`
	Rows     []entity.SysRole `json:"rows"`
}

type RoleAddReq struct {
	g.Meta     `path:"/Role.Add" tags:"role" method:"post" summary:"新增角色"`
	RoleName   string `json:"roleName" v:"required#角色名称为必填参数"` // 角色名称
	RoleCode   string `json:"roleCode" v:"required#角色代码为必填参数"` // 角色代码
	RoleDesc   string `json:"roleDesc"`                        // 角色备注
	RoleStatus uint   `json:"roleStatus" d:"1"`                // 角色状态
}

type RoleAddRes struct {
}

type RoleGetPermissionReq struct {
	g.Meta   `path:"/Role.Permission" tags:"role" method:"get" summary:"获取角色拥有API以及菜单"`
	RoleCode string `json:"roleCode" v:"required#角色代码为必填参数"`
}

type RoleGetPermissionRes struct {
	AllMenus  []entity.SysMenu `json:"allMenus"`
	RoleMenus []entity.SysMenu `json:"roleMenus"`
	AllApis   []entity.SysApis `json:"allApis"`
	RoleApis  []entity.SysApis `json:"roleApis"`
}

type RoleUpdatePermissionReq struct {
	g.Meta    `path:"/Role.Permission" tags:"role" method:"post" summary:"修改角色菜单以及API"`
	RoleCode  string   `json:"roleCode" v:"required#角色代码为必填参数"`
	MenuUuids []string `json:"menuUuids"`
	ApiUuids  []string `json:"apiUuids"`
}

type RoleUpdatePermissionRes struct {
	AllMenus  []entity.SysMenu `json:"allMenus"`
	RoleMenus []entity.SysMenu `json:"roleMenus"`
	AllApis   []entity.SysApis `json:"allApis"`
	RoleApis  []entity.SysApis `json:"roleApis"`
}
